Translating B to TLA + for Validation with TLC
نویسندگان
چکیده
The state-based formal methods B and TLA share the common base of predicate logic, arithmetic and set theory. However, there are still considerable differences, such as the way to specify state transitions, the different approaches to typing, and the available tool support. In this paper, we present a translation from B to TLA to validate B specifications using the model checker TLC. The translation includes many adaptations and optimizations to allow efficient checking by TLC. Moreover, we present a way to validate liveness properties for B specifications under fairness conditions. Our implemented translator, Tlc4B, automatically translates a B specification to TLA, invokes the model checker TLC, and translates the results back to B. We use ProB to double check the counter examples produced by TLC and replay them in the ProB animator. Tlc4B can also transmit constant values, precalculated by ProB to TLC. This allows the user to combine the strength of both tools, i.e. ProB’s constraint solving abilities and TLC’s highly tuned model checking core. Furthermore, we demonstrate an approach to optimize the model checking process by encoding proof information in the translated TLAspecification. We also present a series of case studies and benchmark tests comparing Tlc4B and ProB.
منابع مشابه
Translating TLA + to B for Validation with ProB
TLA and B share the common base of predicate logic, arithmetic and set theory. However, there are still considerable differences, such as very different approaches to typing and modularization. There is also considerable difference in the available tool support. In this paper, we present a translation of the non-temporal part of TLA to B, which makes it possible to feed TLA specifications into ...
متن کاملModel Checking TLA+ Specifications
TLA is a specification language for concurrent and reactive systems that combines the temporal logic TLA with full first-order logic and ZF set theory. TLC is a new model checker for debugging a TLA specification by checking invariance properties of a finite-state model of the specification. It accepts a subclass of TLA specifications that should include most descriptions of real system designs...
متن کاملStepwise Refinement Validation of Design Patterns Formalized in TLA+ using the TLC Model Checker
Spec ∆ = Abstract !Spec This is P ’s specification theorem Spec ⇒ AbstractSpec Spec is Q ’s specification Figure 2: Structure of a TLA+ refinement of patterns
متن کاملFormal Methods for Verifications of Reactive Systems
This chapter deals with the use of two verification approaches: theorem proving and model checking. The authors focus on the Event-B method by using its associated theorem proving tool (Click_n_Prove), and on the language TLA+ by using its model checker TLC. By considering the limitation of the Event-B method to invariance properties, the authors propose to apply the language TLA+ to verify liv...
متن کاملChecking Cache-Coherence Protocols with TLA+
We have a great deal of experience using the specification language TLA and its model checker TLC to analyze protocols designed at Digital and Compaq (both now part of HP). The tools and techniques we have developed apply equally well to software and hardware designs. In this paper, we describe our experience using TLA and TLC to verify cache-coherence protocols.
متن کامل